<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
  <head>
    <meta http-equiv="content-type" content="text/html;charset=utf-8">
    <link href="../../style.css" rel="stylesheet" type="text/css">
    <title>PETSc: Documentation: Changes: Development</title>
  </head>
  <body>

    <div id="logo">
      <h1>PETSc</h1>
    </div>

    <div id="header">
      <h1><!--begin-->Documentation: Changes: Development<!--end--></h1>
    </div>

    <hr>

    <div id="sidebar">
      <ul>
        <li><a href="../../index.html">Home</a></li>
        <li><a href="../../download/index.html">Download</a></li>
        <li><a href="../../features/index.html">Features</a></li>
        <li>
          <a href="../../documentation/index.html">Documentation</a>
          <ul>
            <li><a href="../index.html">Manual pages and Users Manual</a></li>
            <li><a href="../referencing.html">Citing PETSc</a></li>
            <li><a href="../tutorials/index.html">Tutorials</a></li>
            <li><a href="../installation.html">Installation</a></li>
            <li><a href="../saws.html">SAWs</a></li>
            <li>
              <a href="index.html">Changes</a>
              <ul>
                <li><span class="current">dev</span></li>
                <li><a href="310.html">3.10</a></li>
                <li><a href="39.html">3.9</a></li>
                <li><a href="38.html">3.8</a></li>
                <li><a href="37.html">3.7</a></li>
                <li><a href="36.html">3.6</a></li>
                <li><a href="35.html">3.5</a></li>
                <li><a href="34.html">3.4</a></li>
                <li><a href="33.html">3.3</a></li>
                <li><a href="32.html">3.2</a></li>
                <li><a href="31.html">3.1</a></li>
                <li><a href="300.html">3.0.0</a></li>
                <li><a href="233.html">2.3.3</a></li>
                <li><a href="232.html">2.3.2</a></li>
                <li><a href="231.html">2.3.1</a></li>
                <li><a href="230.html">2.3.0</a></li>
                <li><a href="221.html">2.2.1</a></li>
                <li><a href="220.html">2.2.0</a></li>
                <li><a href="216.html">2.1.6</a></li>
                <li><a href="215.html">2.1.5</a></li>
                <li><a href="213.html">2.1.3</a></li>
                <li><a href="212.html">2.1.2</a></li>
                <li><a href="211.html">2.1.1</a></li>
                <li><a href="21.html">2.1.0</a></li>
                <li><a href="2029.html">2.0.29</a></li>
                <li><a href="2028.html">2.0.28</a></li>
                <li><a href="2024.html">2.0.24</a></li>
                <li><a href="2022.html">2.0.22</a></li>
                <li><a href="2018-21.html">2.0.18-21</a></li>
                <li><a href="2017.html">2.0.17</a></li>
                <li><a href="2016.html">2.0.16</a></li>
                <li><a href="2015.html">2.0.15</a></li>
              </ul>
            </li>
            <li><a href="../bugreporting.html">Bug Reporting</a></li>
            <li><a href="../codemanagement.html">Code Management</a></li>
            <li><a href="../faq.html">FAQ</a></li>
            <li><a href="../license.html">License</a></li>
            <li><a href="../linearsolvertable.html">Linear Solver Table</a></li>
          </ul>
        </li>
        <li><a href="../../publications/index.html">Applications/Publications</a></li>
        <li><a href="../../miscellaneous/index.html">Miscellaneous</a></li>
        <li><a href="../../miscellaneous/external.html">External Software</a></li>
        <li><a href="../../developers/index.html">Developers Site</a></li>
      </ul>
    </div>

    <!--begin-->

    <style type="text/css">
      h2 {
        color: red;
      }

      h4 {
        font-weight: bold;
        text-decoration: underline;
      }
    </style>

    <div id="main">

      <div align="center">
        <h2><a name="CHANGES">CHANGES in the PETSc Development Version</a></h2>
      </div>

      <h4>General:</h4>
      <h4>Configure/Build:</h4>
      <ul>
        <li>Configure now supports Python 3.4+ in addition to Python 2.6+.</li>
      </ul>
      <h4>IS:</h4>
      <h4>PetscDraw:</h4>
      <h4>PF:</h4>
      <h4>Vec:</h4>
      <h4>VecScatter:</h4>
      <ul>
        <li>Changed VecScatterCreate() to VecScatterCreateWithData().</li>
        <li>Introduced VecScatterSetData().</li>
        <li>Introduced VecScatterCreate() that creates empty scatter object that can be used with VecScatterSetData().</li>
        <li>Introduced VecScatterSetUp().</li>
        </ul>
      <h4>PetscSection:</h4>
      <h4>Mat:</h4>
      <ul>
        <li>MatRegisterBaseName() changed to MatRegisterRootName()</li>
        <li>Added -mat_mffd_complex to use complex number trick instead of differencing to evaluate product; requires real functions but complex configuration</li>        
        </ul>
      <h4>PC:</h4>
      <ul>
        <li>        PCGetSetUpFailedReason is now PCGetFailedReason()</li>
      </ul>
      <h4>KSP:</h4>
      <ul>
        <li>        KSP_DIVERGED_PCSETUP_FAILED replaced with KSP_DIVERGED_PC_FAILED</li>
        <li>Previously the KSP Chebyshev implementation always did one more iteration than requested. For example -ksp_max_it 2 resulted
          in 3 Chebyshev iterations. This has been corrected. Due to this correction your solver may seem to converge more slowely
          than it previous has. Note that the multigrid solvers (PCMG, PCGAMG, PCML) used by default Chebyshev (with 3 actual steps) in their smoother,
          thus the multigrid solvers will now have seemingly different convergence rates since they will now use only 2 actual steps.
          To reproduce previous behavior change the number of smoother iterations to match the previous actual amount, this can be done
          with for example -mg_levels_ksp_max_it 3 (or -prefix_mg_levels_ksp_max_it 3 if the KSP object has a prefix).</li>
      </ul>
      <h4>SNES:</h4>
      <ul>
        <li>Added SNESKSPTRANSPOSEONLY: a linear solver only SNES that solves the transposed linear system.</li>
      </ul>
      <h4>SNESLineSearch:</h4>
      <h4>TS:</h4>
      <ul>
        <li>Added TSADAPTHISTORY: a new TSAdapt implementation that follows a given time history, that can set with TSAdaptHistorySetHistory().</li>
        <li>Added TSTrajectoryGetVecs() to reconstructs states and time derivative vectors from a TSTrajectory.</li>
      </ul>
      <h4>TAO:</h4>
      <h4>DM/DA:</h4>
      <ul>
        <li>Added DMStag and associated functions, for working with quantities on regular staggered grids, in a manner similar to the usage of DMDA for colocated quantities.</li>
        <li>Added DMLocalToGlobal() and DMLocalToGlobal()
      </ul>
      <h4>DMPlex:</h4>
      <ul>
        <li>Reorganized PetscDS handling completely in order to support multiple subdomains. DMSetDS() was removed in
          favor of DMSetField()+DMCreateDS().</li>
        <li>Added additional PetscSF* return argument to DMPlexGetGatherDM() (made public) and DMPlexGetRedundantDM().</li>
      </ul>
      <h4>PetscViewer:</h4>
      <ul>
        <li>Added new command line options to GLVis viewer, see PetscViewerGLVisOpen() manual page for details.</li>
      </ul>
      <h4>SYS:</h4>
        <li>PetscOptionsGetViewer() takes a NULL or PetscOptions object as the second argument.</li>
      <h4>AO:</h4>
      <h4>Sieve:</h4>
      <h4>Fortran:</h4>
    </div>

    <!--end-->

    <hr>

  </body>
</html>
